module SearchHelper


  # Vergelijkbaar met CategoriesHelper#format_categories_list met als verschil dat alle links naar de search-controller verwijzen en
  # dat er een 'actieve' categorie meegegeven kan worden als parameter. Deze actieve categorie wordt dik gedrukt. 
  def format_search_categories(paginator, categories, active_category=nil)
    s = ""
    rights = []
    opened = []

    categories.each do |category|


      while rights.size > 0 and category.left > rights.last
        if opened.pop
          s += "</ul>\n"
        end

        rights.pop
      end

      if opened.size > 0 and !opened.last
        s += "<ul>\n"
        opened[-1] = true
      end

      if category != active_category
        s += "<li>" + link_to( h(category.name), {:controller => 'search', :action => 'set_category', :category_id => category.id, :paginator => paginator.to_hash} ) + "</li>\n"
      else
        s += "<li><strong>" + h(category.name) + "</strong></li>\n"
      end

      rights.push( category.right )
      opened.push( false )
    end


    while rights.size > 0
      if opened.pop
        s += "</ul>\n"
      end

      rights.pop
    end

    return s
  end

end